package App.kontrolery;

import App.modele.ModelGlowne;
import App.modele.ModelPokazPlany;
import App.modele.ModelPrzegladajKontenery;
import App.modele.ModelWczytajTerminal;
import App.modele.ModelWczytajTransport;
import App.widoki.WidokGlowne;
import skladowisko.Terminal;
import skladowisko.transport.TransportPrzychodzacy;
import skladowisko.utils.ITerminalSaver;
import skladowisko.utils.TerminalCreator;
import skladowisko.utils.XStreamTerminalSaver;

/**
 *
 * @author Krzysiek
 */
public class KontrolerGlowne implements AbstractKontroler
{
    private ModelGlowne model = null;
    private WidokGlowne widok = null;

    //**************************************************************************
    public KontrolerGlowne(ModelGlowne model)
    {
        this.model = model;
        widok = new WidokGlowne(this, model);
    }
    //************************************************************************** 
    public void start()
    {
        widok.setVisible(true);

        TerminalCreator kreator = new TerminalCreator();
        //Terminal terminal = kreator.wczytajTerminal("C:/Users/Krzysiek/Documents/terminalOK.xls");
        //model.setTerminal(terminal);
    }

    //**************************************************************************
    public void zapiszTerminal()
    {
        ITerminalSaver saver = new XStreamTerminalSaver();
        saver.zapisz(model.getTerminal(), "terminal_xml.xml");
    }

    //**************************************************************************
    public void wczytajTerminal()
    {
        KontrolerWczytajTerminal kontroler = new KontrolerWczytajTerminal(new ModelWczytajTerminal(), this);
        kontroler.start();
    }
    //**************************************************************************
    public void setTerminal(Terminal terminal)
    {
        model.setTerminal(terminal);
    }
    //**************************************************************************
    public void przegladajTerminal()
    {
        KontrolerPrzegladajKontenery kontroler = new KontrolerPrzegladajKontenery(new ModelPrzegladajKontenery(model.getTerminal()));
        kontroler.start();
    }
    //**************************************************************************
    public void wczytajTransport()
    {
        KontrolerWczytajTransport kontroler = new KontrolerWczytajTransport(new ModelWczytajTransport(), this);
        kontroler.start();

    }
    //**************************************************************************
    void dodajTransportDoPlanow(TransportPrzychodzacy transport)
    {
        model.dodajTransportDoPlanow(transport);
    }
    //**************************************************************************
    public void pokazPlanowaneTransporty()
    {
        KontrolerPokazPlany kontroler = new KontrolerPokazPlany(new ModelPokazPlany(model.getTerminal()));
        kontroler.start();
    }
    //**************************************************************************



}
